The present invention relates to a data routing device for routing data from computers to peripheral devices. In particular, but not exclusively, the invention relates to a data routing device allowing a number of computers to share a number of peripherals by controlling the routing of data originating and terminating under a Universal Serial Bus (USB) protocol and a system incorporating the device, USB host computers and shared USB peripherals.
The Universal Serial Bus (USB) is a powerful and convenient way of connecting local peripherals to a host computer. The term xe2x80x9cUniversal Serial Busxe2x80x9d relates to the hardware and software that allows a computer to be connected to and operate with a peripheral device. The host computer includes a controller which interfaces the computer with the physical bus, along which signals travel, to which peripheral devices can be attached. The transmission of data is controlled by a USB protocol which comprises a set of rules, procedures and conventions relating to the format and timing of data transmission between devices, The peripherals are typically printers, scanners, keyboards, mice, speakers, microphones, joysticks, cameras, and modems although other peripheral devices are also supported. Multiple peripherals may be connected to a single shared Universal Serial Bus and data transfer between the peripherals and the host computer is achieved by allowing each peripheral to use time on the USB bus in turn. The flow of data across the Universal Serial Bus is controlled by the USB host computer.
It is often desirable for cost, convenience and space saving reasons to share peripherals between groups of computers. Currently this is often achieved by using LAN connections such as Ethernet or by connecting multiple peripheral ports to data switching devices. The wiring of such data switching devices can become complicated and costly when multiple peripherals are to be shared because several different types of wires may need to be connected to each computer.
The Universal Serial Bus overcomes these wiring difficulties by enabling a group of diverse peripherals to be connected using a single common interface. Such wiring simplification is particularly beneficial in data switching applications that would otherwise require multiple sets of multiple cables. The invention provides for the sharing of USB peripherals between multiple USB host computers and provides a data routing system design that takes advantage of the simpler USB wiring whilst also allowing connection to multiple USB host computers.
In practical peripheral sharing applications, decisions need to be made about how to allocate connections to the peripherals between computers. Such allocation decisions are usually specific to the application and depend upon factors such as control panel switch settings, stored parameter values, time delays, data flow and sequences of data that trigger special events. The routing of data on a Universal Serial Bus is controlled by the host computer in a manner that is too inflexible to allow multiple host computers to share USB peripherals in a way that takes account of these actors. Unresolved conflicts would therefore occur if more than one USB host was connected to the same USB peripheral bus without providing a system of arbitration.
According to a first aspect of the invention there is provided, a serial data routing device for use in routing serial data between a computer and a peripheral device, including:
a computer data converter which communicates data under the USB protocol with a computer and which converts data received from the computer into converted computer data;
a peripheral data converter which communicates data under the USB protocol with the peripheral device and which converts data received from the peripheral device into converted peripheral data; and
a data router in communication with the computer data converter and the peripheral data converter which transfers converted computer data and converted peripheral data between them and which includes a data routing controller which controls the routing of the converted computer data and the converted peripheral data between the computer data converter and the peripheral data converter such that the computer and peripheral device operate as though directly connected by a USB bus.
The invention obviates conflicts by providing a data routing device that routes data streams between a host computer and a peripheral in a manner that does not rely on the USB protocol. The device can be for use in routing data between a plurality of host computers and a USB peripheral or a plurality of USB peripherals. Because the data routing is controllable the invention is able to allocate USB peripherals to particular USB host computers by switching the data flow between them on and off. In this way the peripheral can be shared between multiple USB host computers on a basis that is appropriate for the application.
Signals under the USB protocol are received by the device from the host computer and are converted into a non-USB protocol form. The converted data is then transmitted along an internal bus of the device under the control of the data routing controller and may be processed or passed on to a particular peripheral device. The converted data is then re-converted back into USB protocol signals before being transmitted to the peripheral device. USB protocol signals originating from a peripheral device are routed to the appropriate computer in the reverse manner. Hence the host computer and peripheral device act as though connected by a USB, but the control of the data transmitted between them is achieved in a USB protocol independent manner. This allows a plurality of host computers to access a shared set of peripheral devices without the conflicts.
Practical applications for the invention include printer and modem sharing apparatus and equipment to allow multiple computers to be controlled using a single keyboard, a single mouse and a single pair of speakers. When utilised in printer sharing apparatus the invention can enable data from two or more USB host computers to contend for a USB connected printer on a timeout basis. Data activity from each of the computers can be monitored and routed through to the printer on a first come first served basis. Switchover between the data sources can occur when a break in data transmission greater than a defined timeout period has been detected. The invention is particularly beneficial when applied to systems involved in sharing USB keyboards, mice, speakers and microphones between host computers. These peripheral switching systems can be used to allow a bank of computers to be controlled by a system administrator using a single keyboard, monitor, mouse and speaker set.
Traditional solutions would require multiple conductor links between the host computers and the sharing device. USB links between the connected devices allow the cabling to be simplified by reducing the number of conductors required. The use of USB ports may also have the added advantage of leaving the traditional keyboard, mouse and audio peripheral ports free for other purposes.
Preferably, the computer data converter includes processing means to convert converted peripheral data into USB protocol signals which are communicated to the computer. The computer data converter is configured to accept converted peripheral data and process it to generate equivalent USB protocol signals which are output directly to the USB host computer operating under the USB protocol.
Preferably, the peripheral data converter includes processing means to convert converted computer data into USB protocol signals which are communicated to the peripheral device. The peripheral data converter is configured to accept converted computer data signals and process them to generate equivalent USB protocol signals which are output to the USB peripheral device.
Preferably, the data router includes an emulator which generates data causing USB protocol signals to be output from the computer data converter to the computer and from the peripheral data converter to the peripheral device. An emulator can be included in the data router which generates emulation data which can be fed to the computer data converter and peripheral data converter and output as USB protocol signals. The USB protocol signals output from the computer data converter emulate the presence of USB peripheral devices connected to the USB host computer and so the host computer operates as though connected directly to USB peripheral devices on a USB. The USB protocol signals output from the peripheral data converter emulate the presence of a USB host computer connected to the USB peripheral devices and so the USB peripheral devices operate as though connected directly to a USB host computer on a USB.
Preferably, the device has a USB connection transferring signals between the computer and the computer data converter and the USB protocol signals are output from the computer data converter to the computer via the USB connection and mimic the connection of a peripheral operating under the USB protocol directly to the computer via the USB connection. The emulation USB protocol signals output from the computer data converter emulate the presence of peripheral devices connected to the host computer and so the host computer operates as though connected directly to USB peripheral devices on a USB.
Preferably, the device has a USB connection transferring signals between the peripheral device and the peripheral data converter and the USB protocol signals are output from the peripheral data converter to the peripheral device via the USB connection and mimic the connection of a computer operating under the USB protocol directly to the peripheral via the USB connection. The emulation USB protocol signals output from the peripheral data converter emulate the presence of a USB host computer connected to the USB peripherals and so the USB peripherals operate as though connected directly to the USB host computer on a USB. The USB connection may be a USB peripheral bus. This allows a single peripheral data converter to a service a plurality of USB peripherals connected to the USB bus. The USB connection may be a USB hub.
Preferably, the data routing controller includes a microprocessor having a memory device. The microprocessor can process and/or control the data being routed through the data router and can utilise the memory device to store data directly or the results of processing data.
Preferably, routing of the converted computer data and converted peripheral data is effected by transferring data between locations within the memory device. In this way the routing of data is achieved by software. The software may control operation of the microprocessor to store data to be routed in the memory device, and then transferring it to a different location in the memory device, to effect the xe2x80x98routingxe2x80x99 of the data before it is passed back to the data router for transfer to the appropriate device. The data stored may be data which is the result of processing operations carried out by the microprocessor on the converted computer or peripheral data.
Preferably, the data router includes a non-USB bus in communication with the computer data converter, peripheral data converter and the microprocessor and the microprocessor processes converted computer data and converted peripheral data received via the non-USB bus and controls the routing of converted computer data and converted peripheral data in response to the processing of the converted computer or peripheral data and/or data stored in the memory device. The converted computer data and peripheral data may be transferred through the data router by a non-USB bus. The routing of the data on the non-USB bus is controlled by the microprocessor, which controls the routing in response to its processing of the converted computer or peripheral data or on the basis of data stored in the memory device.
Preferably, the device includes a control panel having option switches in communication with the data routing controller which set the values of parameters used by the data routing controller to control the routing of the converted computer and peripheral data. Option switches, such as DIP switches may be provided so that a user of the device can set parameter values used by the data routing controller to control the routed data, e.g. the length of a printer time out.
Preferably, the control panel includes a visual display which gives an indication of the status of the system. Visual display means such as indicator lights may be provided in the control panel to give the user an indication of the status of the device, e.g. whether one of the host computers is trying to access one of the peripherals.
According to a second aspect of the invention there is provided a serial data routing system including a plurality of computers each having a USB connection, a peripheral device having a USB connection and a serial data routing device comprising:
a plurality of computer data converters which communicate data under the USB protocol via a respective USB connection with a respective computer and which convert data received from the computers into converted computer data;
a peripheral data converter which communicates data under the USB protocol with the peripheral device via its USB connection and which converts data received from the peripheral device via its USB connection into converted peripheral data; and
a data router in communication with the computer data converters and the peripheral data converter which transfers converted computer data and converted peripheral data between them and which includes a data routing controller which controls the routing of the converted computer data and the converted peripheral data between the computer data converter and the peripheral data converter such that the computers and peripheral device operate as though directly connected by a USB bus.
Preferably, the system includes a plurality of peripheral devices connected to the USB connection. The USB connection can be a USB peripheral bus. In this way a plurality of USB peripherals may be serviced by a single peripheral data converter. The USB connection can be a USB hub.
The serial data routing device can have a plurality of peripheral data converters, each in communication with the data router. Each peripheral data converter can be connected to a one or a plurality of the plurality of peripheral devices by a USB connection. Each peripheral device can have a USB connection by which it is connected to a respective one of the plurality of peripheral data converters.